#ifndef REGISTERDIALOG_H
#define REGISTERDIALOG_H

#include <QDialog>

#include"httpmgr.h"
#include<QTimer>
namespace Ui {
class RegisterDialog;
}

class RegisterDialog : public QDialog
{
    Q_OBJECT

public:
    explicit RegisterDialog(QWidget *parent = nullptr);
    ~RegisterDialog();

    void initHttpHandlers();

private slots:
    void on_captcha_btn_clicked();
    void slot_reg_mod_finish(ReqId id,QString res,ErrorCodes err);

    void on_confirm_btn_clicked();


    void on_return_btn_clicked();

    void on_cancel_btn_clicked();

private:
    Ui::RegisterDialog *ui;
    void showTip(QString str,bool b_ok);
    QMap<ReqId,std::function<void(const QJsonObject&)>> _handlers;
    QMap<TipErr,QString> _tip_errs;
    QTimer* _countdown_timer;
    int _countdown=5;

    bool checkUserVaild();
    bool checkEmailVaild();
    bool checkPassVaild();
    bool checkVarifyVaild();
    bool checkConfirmVaild();
    void AddTipErr(TipErr te,QString tips);
    void DelTipErr(TipErr te);

    void ChangeTipPage();

signals:
    void sigSwitchLogin();

};

#endif // REGISTERDIALOG_H
